function ccR_Start_Rotation()

	-- Run the Class + Spec rotation
	local vClass = ccrPlayerClass()
	local vSpec = ccrPlayerSpec()
	if vClass == "Death Knight" then vClass = "DeathKnight" end;

	if ccRS.UseG1zStar
	and vSpec ~= nil 
	then
		if _G[vClass.."G1zStar"..vSpec] ~= nil then
			_G[vClass.."G1zStar"..vSpec]()
			return
		end
	end

	if ccRS.UseAnkhy
	and vSpec ~= nil 
	then
		if _G["Ankhy_" .. vClass .. "_" .. vSpec] ~= nil then
			_G["Ankhy_" .. vClass .. "_" .. vSpec]()
			return
		end
	end

	-- Run the low level rotation
	if ccrPlayerLevel() < 10
	or vSpec == nil
	then
		-- function ccR_Class_LowLevel eg. ccR_Paladin_LowLevel()
		if _G["ccR_" .. vClass .. "_LowLevel"] == nil then
			PrintToChat("ccR_" .. vClass .. "_LowLevel() does not exist. Aborting.")
			ccrStart = false 
			ccR:Hide()
		else
			_G["ccR_" .. vClass .. "_LowLevel"]()
		end
	else


		-- function ccR_Class_SpecNumber eg. ccR_Paladin_3() (Retribution)
		if _G["ccR_" .. vClass .. "_" .. vSpec] == nil then
			PrintToChat("ccR_" .. vClass .. "_" .. vSpec .. " does not exist. Aborting.")
			ccrStart = false 
			ccR:Hide()
		else
			_G["ccR_" .. vClass .. "_" .. vSpec]()
		end
	end
end